package fr.alma.trajectory.rendering;

import javax.media.opengl.GL2;

public class Lights {
	
	static final int number_lights = 8;
	
	// vecteur de boolléens de l'inclusion des lumières - taille 8,
	// même si on a moins de choix des lumières
	static boolean[] activated = new boolean[number_lights];
	
	// les entiers correspondant aux différentes lumières
	static int[] codes = new int[number_lights];

	// lumières ambiante, spéculaire et d'émission pour la scène
	static float light_ambient[] = { 0.0f, 0.0f, 0.0f, 1f };
	static float light_specular[] = { 1f, 1f, 1f, 1f };
	static float light_emmission[] = { 0f, 0f, 0f, 1f };
    
    // matrices décrivant les composants diffuse et position pour toutes les lumières
	static float light_diffuse[][];
	static float light_position[][];
	
	// bloc statique d'initialisation
	static {
		codes[0] = GL2.GL_LIGHT0;
		codes[1] = GL2.GL_LIGHT1;
		codes[2] = GL2.GL_LIGHT2;
		codes[3] = GL2.GL_LIGHT3;
		codes[4] = GL2.GL_LIGHT4;
		codes[5] = GL2.GL_LIGHT5;
		codes[6] = GL2.GL_LIGHT6;
		codes[7] = GL2.GL_LIGHT7;
		
		light_diffuse = new float[][] { {1f, 1f, 1f, 1f},			// blanche
										{1f, 0f, 0f, 1f},			// rouge
										{0f, 0f, 1f, 1f},			// bleue
										{0f, 1f, 0f, 1f},			// verte
										{1f, 1f, 0f, 1f},			// jaune
										{1f, 0f, 1f, 1f},			// magenta
										{0f, 1f, 1f, 1f},			// cyan
										{0.87f, 0.4f, 0.2f, 1f}};	// je sais pas
		
		light_position = new float[number_lights][4];
		light_position[0] = new float[] {10.0f, 20.0f, 6.0f, 1.0f};		
	}
}
